package proxy02;

import java.util.Date;

/**
 * 定义一个代理类,相当于老王的私人教练
 * 代理类主要完成需求:
 *    老王专注于吃饭,睡觉,玩游戏,私人教练专门负责统计老王的吃饭,睡觉,玩游戏时间
 * 为了让代理类知道要对那些方法做时间统计,我们需要让代理类和被代理类实现相同接口
 * 类比:
 *   为了让私人教练知道对老王哪些行为做时间统计,我们需要让私人教练和老王实现相同的接口
 */
public class LaoWangProxy implements OneDay{

	private LaoWang lw;

	public LaoWangProxy(LaoWang lw) {
		this.lw = lw;
	}

	@Override
	public void eat() {
		long startTime = new Date().getTime();

        lw.eat();

		long endTime = new Date().getTime();
		System.out.println("吃饭需要的时间:"+ (endTime-startTime));
	}

	@Override
	public void play() {
		long startTime = new Date().getTime();

		lw.play();

		long endTime = new Date().getTime();
		System.out.println("玩游戏需要的时间:"+ (endTime-startTime));
	}

	@Override
	public void sleep() {
		long startTime = new Date().getTime();

		lw.sleep();

		long endTime = new Date().getTime();
		System.out.println("睡觉需要的时间:"+ (endTime-startTime));
	}
}
